package com.leet.code.simple_array;

/**
 * @description:
 * @author: WYG
 * @time: 2020/12/26 9:39
 */

public class MinCostToMoveChips {

    //因为移动2个位置不需要代价，那么奇数位置移到奇数位置不用代价，偶数位置移到偶数位置不用代价，
    // 那就分别统计奇数位置和偶数位置的个数，相当于把所有奇数放一起，所有偶数的放一起，然后比较奇数的少还是偶数的少，
    // 将少的个数移到多的个数位置上去就可以了。
    public int new_minCostToMoveChips(int[] position) {
        int odd = 0, even = 0;
        for (int num : position) {
            if ((num & 1) == 0) even++;
            else odd++;
        }
        return Math.min(odd, even);
    }

    public int minCostToMoveChips(int[] position) {
        int min = Integer.MAX_VALUE;
        for (int i = 0; i < position.length; i++) {
            int temp = 0;
            for (int j = 0; j < position.length; j++) {
                if ((position[j] - position[i]) % 2 != 0) {
                    temp++;
                }
            }
            min = min > temp ? temp : min;
        }
        return min;
    }
}
